package dados;

import negocios.Contato;
import negocios.Endereco;
import negocios.Fornecedor;
import negocios.excecoes.GestockException;

public class RepositorioFornecedor implements IRepositorioFornecedor {

	private static RepositorioFornecedor instancia = null;

	public static RepositorioFornecedor getInstancia() {

		if (instancia == null) {
			instancia = new RepositorioFornecedor();
		}

		return instancia;

	}

	public void cadastrarFornecedor(Fornecedor fornecedor, Contato contato,
			Endereco endereco) throws GestockException {

		try {
			ConexaoBDFornecedor conecta = new ConexaoBDFornecedor();
			conecta.cadastrarFornecedor(fornecedor, contato, endereco);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public Fornecedor consultarFornecedor(String idFornecedor)
			throws GestockException {
		Fornecedor fornecedor = null;
		try {
			ConexaoBDFornecedor conecta = new ConexaoBDFornecedor();
			fornecedor = conecta.consultarFornecedor(idFornecedor);
		}

		catch (Exception e) {
			e.printStackTrace();
		}

		return fornecedor;
	}

	public Object[][] listarFornecedor() throws GestockException {
		Object[][] fornecedor = null;
		try {
			ConexaoBDFornecedor conecta = new ConexaoBDFornecedor();
			fornecedor = conecta.listarFornecedor();
		}

		catch (Exception e) {
			e.printStackTrace();
		}

		return fornecedor;
	}

	public Object[][] listarFornecedorJTable(String nome)
			throws GestockException {
		Object[][] fornecedores = null;
		try {
			ConexaoBDFornecedor conecta = new ConexaoBDFornecedor();
			fornecedores = conecta.listarFornecedorJTable(nome);
		}

		catch (Exception e) {
			e.printStackTrace();
		}

		return fornecedores;
	}

	public void alterarFornecedor(Fornecedor fornecedor)
			throws GestockException {
		try {
			ConexaoBDFornecedor conecta = new ConexaoBDFornecedor();
			conecta.alterarFornecedor(fornecedor);
		}

		catch (Exception e) {
			e.printStackTrace();
		}

	}

}
